package com.sihan.framework.etm.mapper.business;

import com.framework.mybatis.mapper.BaseMapper;
import com.sihan.framework.etm.dto.business.BaseDTO;
import com.sihan.framework.etm.dto.business.ToolOverviewDTO;
import com.sihan.framework.etm.vo.business.*;
import com.sihan.framework.etm.vo.statistics.BaseTypeVO;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * @author gyz
 * @version 1.0
 * @since jdk1.8
 */
@Mapper
public interface StatisticalAnalysisMapper extends BaseMapper<BaseDTO,String> {


	List<ToolOverviewVO> getToolOverview(@Param("param") ToolOverviewDTO dto);

	@SuppressWarnings("rawtypes")
	Map getBorrowUserInfo(@Param(value = "toolId") String toolId);

	BaseToolInfo getToolBaseInfo(@Param(value = "toolId")String toolId);

	ToolBuyInfo getToolBuyInfo(@Param(value = "toolId")String toolId);

	List<DeviceMainInfo> getOrgDevicesByOrgId();

	@SuppressWarnings("rawtypes")
	List<Map> getDeviceToolsByDeviceId(@Param(value = "deviceId")String deviceId);

	/**
	 *
	 * @description  查询重要工器具
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> selectImportantTool();

	/**
	 *
	 * @description 工器具状态统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> selectSummaryTool();

	/**
	 *
	 * @description 领用排行
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> borrowSort();

	/**
	 *
	 * @description 供应商供货排行
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> manufatorSort();

	/**
	 *
	 * @description 采购与保费统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> statisPurchaseAndCrapt();

	/**
	 *
	 * @description  领用与归还统计
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> statisBorrowAndReturn();
	/**
	 *
	 * @description 统计检查与过期
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> statisInpsectAndExpired();
	/**
	 *
	 * @description 统计总量与配置量
	 * @return
	 * @auther 韩兵
	 * @Date 2020年7月15日
	 * @return List<BaseStatisticsVO>
	 */
	List<BaseTypeVO> statisToolTotalAndConfig();

	int getNeedCheckToolNum();

	int getExceptionNum();

}
